package net.xdclass.service;

import net.xdclass.enums.CouponCategoryEnum;
import net.xdclass.request.NewUserCouponRequest;
import net.xdclass.util.JsonData;

import java.util.Map;

/**
 * @author : zhen.xue
 * @date : 2021-05-03 22:18
 */
public interface CouponService {

    /**
     * 分页查询优惠卷
     * @param page 页码
     * @param size 容量
     * @return map
     */
    Map<String,Object> pageCouponActivity(int page,int size);


    /**
     * 领取优惠卷
     * 1 获取优惠卷是否存在
     * 2 校验优惠券是否可以领取:时间 库存 超时 限制
     * 3 扣减库存
     * 4 保存领卷记录
     * @param couponId 优惠卷id
     * @param category 优惠卷类型
     * @return JsonData
     */
    JsonData addCoupon(long couponId, CouponCategoryEnum category);


    /**
     * 新用户注册发放优惠券(此时还没有token)
     * @param newUserCouponRequest
     * @return
     */
    JsonData initNewUserCoupon(NewUserCouponRequest newUserCouponRequest);
}